home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 3.9 KB | 121 lines | [TEXT/MPS ] |
- (*
- File: ENET.mod
-
- Contains: Ethernet Interfaces.
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE ENET;
-
- IMPORT SYSTEM, Types, OSUtils;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
-
- CONST
- ENetSetGeneral* = 253; (*Set "general" mode*)
- ENetGetInfo* = 252; (*Get info*)
- ENetRdCancel* = 251; (*Cancel read*)
- ENetRead* = 250; (*Read*)
- ENetWrite* = 249; (*Write*)
- ENetDetachPH* = 248; (*Detach protocol handler*)
- ENetAttachPH* = 247; (*Attach protocol handler*)
- ENetAddMulti* = 246; (*Add a multicast address*)
- ENetDelMulti* = 245; (*Delete a multicast address*)
- EAddrRType* = LONG("eadr");
-
-
- TYPE
- EParamBlkPtr* = POINTER TO EParamBlock;
-
- (*
- ENETCompletionProcPtr uses register based parameters on the 68k and cannot
- be written in or called from a high-level language without the help of
- mixed mode or assembly glue.
-
- In*:
- => thePBPtr A0.L
- *)
- ENETCompletionProcPtr* = Types.Register68kProcPtr; (* register PROCEDURE ENETCompletion*(thePBPtr: EParamBlkPtr); *)
- ENETCompletionUPP* = Types.UniversalProcPtr;
-
- EParamBlock* = (*ΔΔPACKEDΔΔ*) RECORD
- qLink*: OSUtils.QElemPtr (*ΔΔ POINTER TO OSUtils.QElem*); (*General EParams*)
- qType*: INTEGER; (*queue type*)
- ioTrap*: INTEGER; (*routine trap*)
- ioCmdAddr*: Types.Ptr; (*routine address*)
- ioCompletion*: ENETCompletionUPP; (*completion routine*)
- ioResult*: Types.OSErr; (*result code*)
- ioNamePtr*: Types.StringPtr; (*->filename*)
- ioVRefNum*: INTEGER; (*volume reference or drive number*)
- ioRefNum*: INTEGER; (*driver reference number*)
- csCode*: INTEGER; (*Call command code*)
- (*ΔΔ CASE INTEGER OF
- 0: ( *)
- END;
- ENetWritePB* = RECORD(EParamBlock)
- eProtType*: INTEGER; (*Ethernet protocol type*)
- ePointer*: Types.Ptr; (*No support for PowerPC code*)
- eBuffSize*: INTEGER; (*buffer size*)
- eDataSize*: INTEGER; (*number of bytes read*)
- (*ΔΔ );
- 1: ( *)
- END;
- EMultiAddrPB* = RECORD(EParamBlock)
- eMultiAddr*: ARRAY 6 (*ΔΔ[0..5]ΔΔ*) OF CHAR; (*Multicast Address*)
- (*ΔΔ );*)
- END;
-
- CONST
- uppENETCompletionProcInfo* = $00009802; (* Register PROCEDURE (4 bytes in A0); *)
-
- PROCEDURE CallENETCompletionProc*(thePBPtr: EParamBlkPtr; userRoutine: ENETCompletionUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented*: Glue to move parameters into registers.*)
- (*$END*)
-
- PROCEDURE NewENETCompletionProc*(userRoutine: ENETCompletionProcPtr): ENETCompletionUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE EWrite*(thePBptr: EParamBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE EAttachPH*(thePBptr: EParamBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE EDetachPH*(thePBptr: EParamBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE ERead*(thePBptr: EParamBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE ERdCancel*(thePBptr: EParamBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE EGetInfo*(thePBptr: EParamBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE ESetGeneral*(thePBptr: EParamBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE EAddMulti*(thePBptr: EParamBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE EDelMulti*(thePBptr: EParamBlkPtr; async: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END ENET.
-